ubuproxy permet de rediriger n'importe quel type de connexion TCP/IP, et de loguer tout le traffic qui passe au travers du proxy. Les seules informations necessaires à la création d'un proxy sont donc :
La compilation du binaire à été réalisée sur Ubuntu dapper, mais devrait parfaitement fonctionner sur toutes les versions plus recentes.
ubuproxy est un simple script shell qui pemet de simplifier et "d'encapsuler" l'utilisation de "tcpproxy", ecrit par Wolfgang Zekoll, dont les sources sont distibués sous GPL v2 et disponibles à cette adresse :
http://www.quietsche-entchen.de/cgi-bin/wiki.cgi/-wiki/proxies/TcpProxy
Attention, plusieurs bugs importants ont étés corrigées dans la version déployée par ubuproxy. (nous tentons de contacter l'auteur pour lui soumettre les differents patchs…) Les sources ainsi modifiées sont bien sur disponibles sur simple demande.
Télécharger et installez le paquet ubuproxy, disponible ici : http://hoper78.free.fr/ubuntu/ubuproxy.deb
La premiere chose à faire est de créer un proxy :
sudo ubuproxy proxy1 make
Le nom du proxy (ici "proxy1") n'a pas d'importance. Supposons que je sois sur une machine avec pour adresse IP : 10.0.0.1 et que je veuille créer un proxy qui ecoute sur le port 1000, puis qui redirige toutes les demandes sur le port 80 (serevur http) d'une autre machine, ayant pour IP : 10.0.0.2
Listening port : 1000 Interface [10.0.0.1] : Forward to (server:port) : 10.0.0.2:80 Keep logs for X days [20] : ------------------------------------ Add this configuration to proxy1 : Listening port : 1000 Listening on 10.0.0.1 forwarding conections to : 10.0.0.2:80 and keep logs for 20 days. Is this ok ? [N/y]: y Configuration done in /etc/tcpproxy/proxy1.conf Making the /var/log/tcpproxy/proxy1 directory Adding the /etc/cron.daily/purge-logs-proxy1-1000 file...
Il reste a lancer le processus :
sudo ubuproxy proxy1 start
On peut egalement vérifier que le proxy est bien actif (online) :
sudo ubuproxy all status
Il reste à verifier que tout fonctionne. (en lancant un navigateur et en essaynt de se conecter sur "http://10.0.0.1:1000" par exemple, on arrivera en fait sur la machine 2 (10.0.0.2:80).
Il est possible de stoper un proxy avec la commande suivante :
sudo ubuproxy proxy1 start
Ou de supprimer totalement sa configuration ainsi que tous les fichiers de log qu'il a pu générer :
sudo ubuproxy proxy1 remove
Ils se trouvent dans /etc/tcpproxy/ (un par proxy) et contiennent par defaut les informations suivantes :
port 1000
interface 10.0.0.1
timeout 600
extended-info yes
user 1000.0
server 10.0.0.2:80
writefile /var/log/tcpproxy/proxy1/1000
On retrouve donc :
Chaque connexions génére un fichier de logs dont le nom est composé du port et du pid du process qui à géré la connexion. Les fichiers sont ensuite automatiquement archivés (une archive par jour et par port) puis compressé.